/*
 * @Author: 闫一丹 1437921153@qq.com
 * @Date: 2023-01-03 21:43:43
 * @LastEditors: 闫一丹 1437921153@qq.com
 * @LastEditTime: 2023-02-07 21:52:19
 * @FilePath: \team_program\controller\chat.js
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
/**
* 在这里定义和群聊相关的路由处理函数，供 /router/chat.js 模块进行调用
*/
// 导入数据库操作模块
const db = require('../db')
/**
 * 获取群聊列表的处理函数
 */
exports.getMyChat = (req, res) => {
    // res.send('ok')
    // 定义获取群聊列表的 SQL 语句
    const sql = 'select * from chat where is_quit=0 order by chat_id asc'
    // 执行 SQL 语句
    db.query(sql, (err, results) => {
        // 1. 执行 SQL 语句失败
        if (err) return res.cc(err)
        // 2. 执行 SQL 语句成功
        res.send({
            status: 0,
            message: '获取群聊列表成功！',
            data: results,
        })
    })
}

/**
 * 新增群聊
 */
exports.addChat = (req, res) => {
    // res.send('ok')
    // 定义查询 分类名称 与 分类别名 是否被占用的 SQL 语句
    const sql = 'select * from chat where chat_name=?'
    // 执行查重操作
    db.query(sql, req.body.chat_name, (err, results) => {
        // 执行 SQL 语句失败
        if (err) return res.cc(err)
        // 分别判断 分类名称 和 分类别名 是否被占用
        if (results.length === 1 && results[0].chat_name === req.body.chat_name) return res.cc('群聊名称被占用，请更换后重试！')
        // TODO：新增文章分类
        const insertSql = 'insert into chat set ?'
        db.query(insertSql, req.body, (err, results) => {
            // SQL 语句执行失败
            if (err) return res.cc(err)

            // SQL 语句执行成功，但是影响行数不等于 1
            if (results.affectedRows !== 1) return res.cc('新增群聊失败！')

            // 新增群聊成功
            res.cc('新增群聊成功！', 0)
        })

    })


}

/**
 * 获取群聊人员
 */
exports.getMyChatPelple = (req, res) => {
    // 定义获取群聊人员的 SQL
    // res.send('ok')
    const sql = 'SELECT chat_user_rel.id,users.user_name,chat.chat_name FROM chat_user_rel JOIN chat ON chat_user_rel.chat_id=chat.chat_id JOIN users ON chat_user_rel.user_id=users.user_id'
    db.query(sql, (err, results) => {
        if (err) return res.cc(err)
        // 2. 执行 SQL 语句成功
        res.send({
            status: 0,
            message: '获取群聊人员列表成功！',
            data: results,
        })
    })

}

/**
 * 添加群聊人员
 */
